home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / mc / extfs / hp48 < prev    next >
Text File  |  2009-10-25  |  3KB  |  99 lines

  1. #!/bin/sh
  2. #
  3. # Written by Christofer Edvardsen <ce@earthling.net>, Feb 1998
  4. #
  5. # This script makes it possible to view and copy files to/from a hp48
  6. # (tested with a HP48G and the emulator x48)
  7. #
  8. # To use the hp48 external filesystem:
  9. #      - read the relevant parts of your HP48 manual
  10. #      - install kermit
  11. #      - connect the HP48 to your computer or start x48
  12. #      - below change the line which reflects the serial device you use
  13. #      - configure your HP48 (<left shift> - i/o - iopar): 
  14. #        port: wire
  15. #        baud: 9600 
  16. #        transfer format: binary (fast transfers) or
  17. #                         ascii (editable on the pc)
  18. #      - start the server on the HP48: <left shift> - i/o - srvr - serve
  19. #        or the shortcut <right shift> - <right arrow>
  20. #      - on MC's commandline enter "cd hp48:"
  21. #
  22. # Make sure you have kermit installed and that it's using the right serial
  23. # device by changing /dev/ttyXX on the next line
  24. AWK=mawk
  25. KERMIT="kermit -l /dev/ttyS1 -b 9600"
  26.  
  27. hp48_cmd()
  28. {
  29. $KERMIT -C "SET EXIT WARNING OFF,REMOTE $1,QUIT"
  30. }
  31.  
  32. hp48_cd()
  33. {
  34. (echo SET EXIT WARNING OFF;echo REMOTE HOST HOME
  35. for HP48_DIR in `echo "$1" | tr '/' ' '`;do
  36.   if [ "x$HP48_DIR" != "x." ];then echo REMOTE HOST "$HP48_DIR"; fi
  37. done
  38. echo QUIT)| $KERMIT -B >/dev/null
  39. }
  40.  
  41. hp48_retdir()
  42. {
  43. echo "$1"
  44. }
  45.  
  46. hp48_retsize()
  47. {
  48. printf "%d" "$2" 2>/dev/null
  49. }
  50.  
  51. hp48_parser()
  52. {
  53. HP48_DIRS=
  54. read -r INPUT
  55. while [ "x$INPUT" != "xEOF" ]
  56. do
  57.     case `echo "$INPUT" | $AWK '{if (int($2)) if ($3 == "Directory") print "dir";else print "file"}'` in
  58.     dir) HP48_DIRS="$HP48_DIRS `hp48_retdir \"$INPUT\"`"
  59.     printf "drwxr-xr-x   1 %-8d %-8d %8d %s %s\n" 0 0 `hp48_retsize "$INPUT"` "`date +\"%b %d %Y %k:%M\"`" "$HP48_CDIR/`hp48_retdir \"$INPUT\"`";;
  60.     file) printf "-rw-r--r--   1 %-8d %-8d %8d %s %s\n" 0 0 `hp48_retsize "$INPUT"` "`date +\"%b %d %Y %k:%M\"`" "$HP48_CDIR/`hp48_retdir \"$INPUT\"`";;
  61.     esac
  62.     read -r INPUT
  63. done
  64. for HP48_DIR in $HP48_DIRS;
  65. do 
  66.     HP48_PDIR="$HP48_CDIR"
  67.     HP48_CDIR="$HP48_CDIR/$HP48_DIR"; hp48_cmd "HOST $HP48_DIR" >/dev/null
  68.     hp48_list
  69.     HP48_CDIR="$HP48_PDIR"; hp48_cmd "HOST UPDIR" >/dev/null
  70. done
  71. }
  72.  
  73. hp48_list()
  74. {
  75. { hp48_cmd "DIRECTORY"; echo; echo EOF; } | hp48_parser
  76. }
  77.  
  78. # override any locale for dates
  79. LC_ALL=C
  80. export LC_ALL
  81.  
  82. case "$1" in
  83. list) HP48_CDIR=
  84.     hp48_cmd "HOST HOME" >/dev/null
  85.     hp48_list
  86.     exit 0;;
  87. copyout)
  88.     cd "`dirname "$4"`"
  89.     hp48_cd "`dirname "$3"`"
  90.     $KERMIT -B -g "`basename "$3"`" -a "$4" >/dev/null
  91.     exit 0;;
  92. copyin) 
  93.     cd "`dirname "$4"`"
  94.     hp48_cd "`dirname "$3"`"
  95.     $KERMIT -B -s "$4" -a "`basename "$3"`" >/dev/null
  96.     exit 0;;
  97. esac
  98. exit 1
  99.